home *** CD-ROM | disk | FTP | other *** search
/ PC User 2002 July / Disc 2 / PCU0702CD2.iso / entertn / floaters / files / Control / GameInstaller / data1.cab / GameDxr / Floaters.dxr / 00025_RandomObject.ls < prev    next >
Encoding:
Text File  |  2002-05-17  |  5.5 KB  |  193 lines

  1. property pMyDegrees, pMyDirection, pDeltaAngle, pMyOrigLoc, pMyChnl, pMySpeed, pMyCounter
  2. global cDlgSndChnl
  3.  
  4. on getBehaviorDescription me
  5.   text = "Moves the sprite in clockwise or anticlockwise direction"
  6.   put "depending on the change in angle (+ve or -ve)." after text
  7.   return text
  8. end
  9.  
  10. on getPropertyDescriptionList me
  11.   list = [:]
  12.   addProp(list, #pDeltaAngle, [#comment: "Change in Angle", #format: #number, #range: [#min: -10, #max: 10], #default: 0])
  13.   return list
  14. end
  15.  
  16. on beginSprite me
  17.   pMyChnl = me.spriteNum
  18.   pMyCounter = 0
  19.   pMyDirection = random(2) - 1
  20.   curMem = sprite(pMyChnl).member
  21.   if (curMem <> member("FloatyScutRight")) and (curMem <> member("FloatyScutLeft")) and (curMem <> member("Floaty1")) and (curMem <> member("Fishbowl")) then
  22.     pMySpeed = 2 + random(5)
  23.   else
  24.     pMySpeed = 1 + random(2)
  25.   end if
  26.   if pMyDirection = 1 then
  27.     pMyLoc = point(-50, random(600))
  28.     if pMyLoc[2] < 300 then
  29.       pMyDegrees = 20 + random(50)
  30.     else
  31.       pMyDegrees = 290 + random(50)
  32.     end if
  33.     if curMem = member("FloatyScutLeft") then
  34.       sprite(pMyChnl).member = member("FloatyScutRight")
  35.     else
  36.       if curMem = member("Floaty1") then
  37.         sprite(pMyChnl).flipH = 1
  38.       end if
  39.     end if
  40.   else
  41.     if pMyDirection = 0 then
  42.       pMyLoc = point(850, random(600))
  43.       if pMyLoc[2] < 300 then
  44.         pMyDegrees = 110 + random(50)
  45.       else
  46.         pMyDegrees = 200 + random(50)
  47.       end if
  48.       if (curMem = member("Rocket")) or (curMem = member("Sputnix")) then
  49.         sprite(pMyChnl).flipH = 1
  50.       end if
  51.       if curMem = member("Fishbowl") then
  52.         sendSprite(pMyChnl - 1, #flipMe)
  53.       end if
  54.     end if
  55.   end if
  56.   sprite(pMyChnl).loc = pMyLoc
  57. end
  58.  
  59. on stepFrame me
  60.   curMem = sprite(pMyChnl).member
  61.   newH = integer(sprite(pMyChnl).locH + (pMySpeed * cos(degreesToRadians(pMyDegrees))))
  62.   newV = integer(sprite(pMyChnl).locV + (pMySpeed * sin(degreesToRadians(pMyDegrees))))
  63.   if not soundBusy(cDlgSndChnl) and ((curMem = member("FloatyScutRight")) or (curMem = member("FloatyScutLeft"))) then
  64.     sprite(pMyChnl).member = member("Floaty1")
  65.   end if
  66.   if newV < -20 then
  67.     if pMyDirection = 1 then
  68.       pMyDegrees = 20 + random(50)
  69.     else
  70.       if pMyDirection = 0 then
  71.         pMyDegrees = 110 + random(50)
  72.       end if
  73.     end if
  74.     curMem = sprite(pMyChnl).member
  75.   else
  76.     if newV > 620 then
  77.       if pMyDirection = 1 then
  78.         pMyDegrees = 290 + random(50)
  79.       else
  80.         if pMyDirection = 0 then
  81.           pMyDegrees = 200 + random(50)
  82.         end if
  83.       end if
  84.       curMem = sprite(pMyChnl).member
  85.     else
  86.       if (pMyDirection = 1) and (newH > 850) then
  87.         pMyDirection = not pMyDirection
  88.         newH = 900
  89.         newV = random(600)
  90.         if newV < 300 then
  91.           pMyDegrees = 110 + random(50)
  92.         else
  93.           pMyDegrees = 200 + random(50)
  94.         end if
  95.         swapFloaty()
  96.         if (curMem = member("Rocket")) or (curMem = member("Sputnix")) then
  97.           sprite(pMyChnl).flipH = 1
  98.         else
  99.           if curMem = member("FloatyScutRight") then
  100.             sprite(pMyChnl).member = member("FloatyScutLeft")
  101.           else
  102.             if curMem = member("Floaty1") then
  103.               sprite(pMyChnl).flipH = 0
  104.             else
  105.               if curMem = member("Fishbowl") then
  106.                 sendSprite(pMyChnl - 1, #flipMe)
  107.               end if
  108.             end if
  109.           end if
  110.         end if
  111.       else
  112.         if (pMyDirection = 0) and (newH < -50) then
  113.           pMyDirection = not pMyDirection
  114.           newH = -100
  115.           newV = random(600)
  116.           if newV < 300 then
  117.             pMyDegrees = 20 + random(50)
  118.           else
  119.             pMyDegrees = 290 + random(50)
  120.           end if
  121.           swapFloaty()
  122.           if (curMem = member("Rocket")) or (curMem = member("Sputnix")) then
  123.             sprite(pMyChnl).flipH = 0
  124.           else
  125.             if curMem = member("FloatyScutLeft") then
  126.               sprite(pMyChnl).member = member("FloatyScutRight")
  127.             else
  128.               if curMem = member("Floaty1") then
  129.                 sprite(pMyChnl).flipH = 1
  130.               else
  131.                 if curMem = member("Fishbowl") then
  132.                   sendSprite(pMyChnl - 1, #flipMe)
  133.                 end if
  134.               end if
  135.             end if
  136.           end if
  137.         end if
  138.       end if
  139.     end if
  140.   end if
  141.   if pDeltaAngle <> 0 then
  142.     if pMyDirection = 1 then
  143.       newAngle = sprite(pMyChnl).rotation + pDeltaAngle
  144.     else
  145.       if pMyDirection = 0 then
  146.         newAngle = sprite(pMyChnl).rotation - pDeltaAngle
  147.       end if
  148.     end if
  149.     if newAngle < 0 then
  150.       newAngle = 360 + newAngle
  151.     end if
  152.     if newAngle > 360 then
  153.       newAngle = newAngle - 360
  154.     end if
  155.     sprite(pMyChnl).rotation = newAngle
  156.   end if
  157.   sprite(pMyChnl).loc = point(newH, newV)
  158. end
  159.  
  160. on GetAngle me
  161.   return pMyDegrees
  162. end
  163.  
  164. on swapFloaty
  165.   curMem = sprite(pMyChnl).member
  166.   if curMem = member("Baskball") then
  167.     sprite(pMyChnl).member = member("Tennisball")
  168.     pDeltaAngle = 10
  169.   else
  170.     if curMem = member("Tennisball") then
  171.       sprite(pMyChnl).member = member("Planet")
  172.       pDeltaAngle = -5
  173.     else
  174.       if curMem = member("Planet") then
  175.         sprite(pMyChnl).member = member("Rocket")
  176.         pDeltaAngle = 0
  177.         sprite(pMyChnl).rotation = 0
  178.       else
  179.         if curMem = member("Rocket") then
  180.           sprite(pMyChnl).member = member("Sputnix")
  181.           pDeltaAngle = 0
  182.           sprite(pMyChnl).rotation = 0
  183.         else
  184.           if curMem = member("Sputnix") then
  185.             sprite(pMyChnl).member = member("BaskBall")
  186.             pDeltaAngle = 10
  187.           end if
  188.         end if
  189.       end if
  190.     end if
  191.   end if
  192. end
  193.